home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 5
/
Aminet 5 - March 1995.iso
/
Aminet
/
util
/
time
/
time_v12.lha
/
Time.c
< prev
Wrap
C/C++ Source or Header
|
1994-12-31
|
2KB
|
93 lines
; /*
sc time.c ignore=73
slink from lib:c.o time.o to Time lib lib:sc.lib lib:amiga.lib sc sd nd
quit
Time v1.2 Copyright © 1994 by Stefano Reksten of 3AM - The Three Amigos!!!
This piece of code is FREEWARE. Do anything with it but don't gain money
for my work! And please spread exe + source!
What does it do? Simply tells you how much time did a command take to
complete.
rekststef@unisi.it
Stefano Reksten c/o Naimi,
v.le Cavour 40,
53100 Siena
Italy
*/
#include <exec/types.h>
#include <exec/io.h>
#include <devices/timer.h>
#include <clib/exec_protos.h>
#include <clib/alib_protos.h>
#include <clib/dos_protos.h>
#include <clib/timer_protos.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
struct timeval start_time, end_time;
struct Library *TimerBase;
struct timerequest *tIO;
struct MsgPort *mport;
struct Message *msg;
char *cmd_line;
/*ULONG res_secs, res_micro;*/
BPTR output;
#define RES_SECS 0
#define RES_MICRO 1
ULONG res[2];
char *template = "Command/A/F";
char*ver = "$VER: Time v1.2 (31.12.94)";
void _main( char *line )
{
struct RDArgs *args;
if ( args = ReadArgs( template, (LONG *)&cmd_line, NULL ) )
{
if ( mport = CreateMsgPort() )
{
if ( tIO = (struct timerequest *)CreateExtIO(mport,sizeof(struct timerequest)) )
{
if ( !OpenDevice("timer.device",UNIT_VBLANK,(struct IORequest*)tIO,0L) )
{
TimerBase = (struct Library *)tIO->tr_node.io_Device;
output = Output();
VFPrintf( output, "\2333mTime\2330m v1.2 by Stefano Reksten\n", NULL );
GetSysTime( &start_time );
system( cmd_line );
GetSysTime( &end_time );
if ( end_time.tv_micro < start_time.tv_micro )
{
start_time.tv_secs--;
res[RES_MICRO] = start_time.tv_micro - end_time.tv_micro;
}
else res[RES_MICRO] = end_time.tv_micro - start_time.tv_micro;
res[RES_SECS] = end_time.tv_secs - start_time.tv_secs;
VFPrintf( output, "Command took %ld secs, %ld micros to complete.\n", (LONG *)res );
CloseDevice((struct IORequest *)tIO);
}
DeleteExtIO((struct IORequest *)tIO);
}
DeleteMsgPort(mport);
}
FreeArgs( args );
}
else PrintFault( IoErr(), NULL );
}